Digital computers are being used today to perform a wide variety of tasks. Many different areas of business, industry, government, education, entertainment, and most recently, the home, are tapping into the enormous and rapidly growing list of applications developed for today's increasingly powerful computer devices. Computers have also become a key technology for communicating ideas, data, and trends between and among business professionals.
When a digital computer system is turned on from an off state, or when the computer system is reinitialized (e.g., restarted), the computer system executes a set a initialization software routines generally referred to as BIOS routines (Basic Input Output System), or BIOS. As known by those skilled in the art, the BIOS of a computer system comprises an essential set of initialization routines of the computer system, and is most typically encountered in desktop computer systems, such as personal computers or workstations. Generally, the BIOS is stored in nonvolatile memory on a chip (e.g., ROM, flash memory, or the like) and provides an interface between the operating system and the computer system's hardware. The BIOS supports all peripheral technologies and internal services such as the realtime clock (time and date), the expansion buses, the memory buses, and the like.
On startup, the BIOS tests the computer system and prepares the computer for operation by, for example, querying its own small CMOS memory bank for drive and other configuration settings. It searches for other BIOS's on the plug-in boards and sets up pointers (interrupt vectors) in memory to access those routines. It then loads the operating system and passes control to it. Generally, the BIOS accepts requests from the drivers as well as the application programs.
Additionally, on startup, the BIOS runs one or more diagnostic tests. Before it invokes the operating system, the BIOS checks to make sure all the hardware is working. It then works with the computer's hardware components in conjunction with the operating system. The diagnostic test that the BIOS performs is referred to as a POST (power on self test), and is typically performed for the keyboard, drives, ports, chips, and all other components in the system to make sure they are working correctly.
The BIOS relies upon the display of visual information via the computer system monitor in order to provide feedback to the user regarding the status and progress of the POST. The video BIOS comprises a portion of the BIOS that initializes the basic video display capability of the computer. For example, with a PC, once the basic video capability is initialized, it is often possible to see the BIOS performing this POST during the PC's startup process. A healthy system BIOS will display information about the computer, including the amount of RAM, the number of drives, and the type of processor. If the BIOS detects a hardware problem, it will halt and display a text error messages on-screen. These messages are designed to assist the user in fixing or adjusting the BIOS configuration parameters or settings. In addition to visual feedback, audible feedback can be supplied regarding the progress of the BIOS diagnostic tests. For example, one long beep can mean the BIOS successfully completed all the hardware tests, while a combination of shorter beeps can indicate a number of different errors.
There exists a problem however, with extending the capabilities of the BIOS configuration functions and the way resulting information is communicated to the user. The standard PC architecture (e.g., the x86 PC) has evolved in many ways since its introduction in the early 1980s. As hardware tests changed and as the capabilities of the “legacy architecture” have been extended, BIOS's have been periodically updated to keep pace with new emerging peripheral technologies. For example, newer BIOSs are specifically stored on a flash memory chip that can be upgraded via software to facilitate easier updating. However each of the extensions of the BIOS capability generally conform to the basic tenets of the legacy architecture.
Among the more problematic tenets of the legacy architecture is the fact that the video BIOS software is limited in size to 64 K of addressable memory. This imposes as a severe constraint on the types of operations and capabilities that can be implemented. Even more problematic is fact that some PC architectures limit the amount of RAM available to the BIOS for temporary program execution storage (e.g., stack memory) to a mere 200 bytes.
The memory limitations function as a severe constraint on the manner in which display information can be presented by the video BIOS software and the types of functions the video BIOS software can implement. These memory limitations are typically in place until the BIOS POST is complete and the operating system is initialized. Once the operating system is initialized, a video driver for the graphics subsystem of the PC is initialized to provide full function display capability. However, the memory limitations prevent any enhanced display functionality being provided early in the computer system boot process, and restrict the functionality of the POST.
Thus, what is required is a solution that overcomes the memory limitations that constrain the functionality of the BIOS software. What is required is a solution that eliminates the memory limitations of the video BIOS execution but is still compatible with the legacy PC architecture. The present invention provides a novel solution to these requirements.